USE PGR_TSQL
GO

CREATE ASSEMBLY EJEMPLOCLR
AUTHORIZATION DBO
FROM
	'C:\SqlDll\LibreriaProcedimientos.dll'
WITH PERMISSION_SET = SAFE
GO

CREATE PROCEDURE USP_EJEMPLO_CLR
AS EXTERNAL NAME EJEMPLOCLR.[LibreriaProcedimientos.EjemploCLRProcedimiento].[EjemploCLR]
GO

SP_CONFIGURE 'clr enabled', 1
GO
RECONFIGURE
GO

EXEC USP_EJEMPLO_CLR
GO

BEGIN TRY
	SELECT 2/0
END TRY
BEGIN CATCH
	SELECT
		ERROR_LINE() AS LINEA_ERROR,
		ERROR_MESSAGE() AS MENSAJE_ERROR,
		ERROR_NUMBER() AS NUMERO_ERROR,
		ERROR_PROCEDURE() AS ERROR_PROCEDIMIENTO,
		ERROR_SEVERITY() AS GRAVEDAD_ERROR,
		ERROR_STATE() AS ESTADO_ERROR
END CATCH

DECLARE @ANIO_LANZAMIENTO INT
DECLARE @ANIO_LANZAMIENTO_NUEVO INT
BEGIN TRANSACTION
SELECT @ANIO_LANZAMIENTO = ANIO_LANZAMIENTO FROM FILME WHERE ID_FILME = 3
SET @ANIO_LANZAMIENTO_NUEVO = @ANIO_LANZAMIENTO + 5
UPDATE FILME SET ANIO_LANZAMIENTO = @ANIO_LANZAMIENTO_NUEVO
IF @ANIO_LANZAMIENTO_NUEVO > 2015
	BEGIN
		PRINT 'NO SE PUEDEN INGRESAR ANIOS MAYORES A 2015'
		ROLLBACK TRANSACTION
	END
ELSE
	BEGIN
		PRINT 'TRANSACCION EXITOSA'
		COMMIT TRANSACTION
	END
